package models.cad;

import java.sql.Date;
import java.sql.Time;
import java.text.SimpleDateFormat;

import stores.cad.HorarioDAO;
import utils.Conexao;

public class Horario {

	private int		is;
	private	String	codigo;
	private String	nome;
	private char	turno;
	private String 	dias;
	private Time	dtIni;
	private Time	dtFin;
	private Usuario usuario;
	private Date	dtOpe;

	public int getIs() {
		return is;
	}
	public void setIs(int is) {
		this.is = is;
	}
	public String getCodigo() {
		return codigo;
	}
	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public char getTurno() {
		return turno;
	}
	public void setTurno(char turno) {
		this.turno = turno;
	}
	public String getDias() {
		return dias;
	}
	public void setDias(String dias) {
		this.dias = dias;
	}
	public Time getDtIni() {
		return dtIni;
	}
	public String getDtIniFormatado() {
		return new SimpleDateFormat("hh:mm").format(dtIni);
	}
	public void setDtIni(Time dtIni) {
		this.dtIni = dtIni;
	}
	public Time getDtFin() {
		return dtFin;
	}
	public String getDtFinFormatado() {
		return new SimpleDateFormat("hh:mm").format(dtFin);
	}
	public void setDtFin(Time dtFin) {
		this.dtFin = dtFin;
	}
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public Date getDtOpe() {
		return dtOpe;
	}
	public void setDtOpe(Date dtOpe) {
		this.dtOpe = dtOpe;
	}
	
	public String getDiasFormatado(){
		String res = "";
		for (char d : dias.toCharArray()) {
			switch (d) {
				case 'S':{
					res += "Seg,";
					break;
				}
				case 'T':{
					res += "Ter,";
					break;
				}
				case 'Q':{
					res += "Qua,";
					break;
				}
				case 'U':{
					res += "Qui,";
					break;
				}
				case 'E':{
					res += "Sex,";
					break;
				}
				case 'A':{
					res += "Sab,";
					break;
				}
			default:
				break;
			}
		}
		if(res.length() > 0)
			res = res.substring(0, res.length()-1);
		return res;
	}
	
	@Override
	public String toString() {
		return getDiasFormatado() + ", " + getDtIniFormatado() + " as " + getDtFinFormatado();
	}
	
	public static Horario getHorario(int is) {
		HorarioDAO horDAO = new HorarioDAO(Conexao.getConnection());
		return (Horario) horDAO.getByIs(is);
	}
	
	public static Horario getHorario(String cod) {
		HorarioDAO horDAO = new HorarioDAO(Conexao.getConnection());
		return (Horario) horDAO.getByCod(cod);
	}
	
}
